package BackOffice;

//
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.management.StandardMBean;
import javax.swing.ComboBoxModel;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JComboBox;

import javax.swing.DefaultListModel;
import javax.swing.JTextField;
import javax.swing.WindowConstants;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JScrollPane;
import javax.swing.JSeparator;
import javax.swing.JTable;
import javax.swing.JTextArea;
import javax.swing.ListModel;


/**
* This code was edited or generated using CloudGarden's Jigloo
* SWT/Swing GUI Builder, which is free for non-commercial
* use. If Jigloo is being used commercially (ie, by a corporation,
* company or business for any purpose whatever) then you
* should purchase a license for each developer using Jigloo.
* Please visit www.cloudgarden.com for details.
* Use of Jigloo implies acceptance of these licensing terms.
* A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR
* THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED
* LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE.
*/
public class Vokabeln_bearbeiten extends javax.swing.JPanel {
	private JComboBox sprache;
	private JLabel lSprache;
	private JTextField Wort;
	private JLabel text;
	private JLabel jkat_englisch;
	private JComboBox kategorie_englisch;
	private JComboBox vokabelnentferne = new JComboBox();
	private JButton hinzufuegen;
	private JLabel jengWort;
	private JTextField wortenglisch;
	private JLabel jWort;
	private JLabel jkategorie;
	private JComboBox kategorie;
	DefaultTableModel model = new DefaultTableModel();
	private JButton Exit;
	private JScrollPane Anzeige;
	private JTable Vokabeln;
	private JLabel Meldungen;
	private JSeparator jSeparator2;
	private JSeparator jSeparator1;
	private JButton Hauptmenue;
	private JButton wort_entferne;

	public static void main(String[] args) {
		JFrame frame = new JFrame();
		frame.getContentPane().add(new Vokabeln_bearbeiten());
		frame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
		frame.pack();
		frame.setVisible(true);
	}

	public Vokabeln_bearbeiten() {
		super();
		initGUI();
	}

	private void initGUI() {
		try {
			this.setPreferredSize(new java.awt.Dimension(800, 600));
			this.setLayout(null);
			{
				ComboBoxModel spracheModel = new DefaultComboBoxModel();
				sprache = new JComboBox();
				this.add(sprache);
				sprache.setModel(spracheModel);
				sprache.setBounds(237, 57, 108, 23);
				sprache.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent evt) {
						spracheActionPerformed(evt);
					}
				});
			}
			{
				lSprache = new JLabel();
				this.add(lSprache);
				lSprache.setText("W\u00E4hle Sprache");
				lSprache.setBounds(44, 60, 122, 16);
			}
			{
				ComboBoxModel kategorieModel = new DefaultComboBoxModel();
				kategorie = new JComboBox();
				this.add(kategorie);
				kategorie.setModel(kategorieModel);
				kategorie.setBounds(237, 92, 165, 23);
				kategorie.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent evt) {
						kategorieActionPerformed(evt);
					}
				});
			}
			{
				jkategorie = new JLabel();
				this.add(jkategorie);
				jkategorie.setText("W\u00E4hle Kategorie");
				jkategorie.setBounds(44, 95, 157, 16);
			}
			{
				Wort = new JTextField();
				this.add(Wort);
				Wort.setBounds(237, 177, 182, 26);
			}
			{
				jWort = new JLabel();
				this.add(jWort);
				jWort.setText("Wort der Sprache");
				jWort.setBounds(44, 187, 174, 16);
			}
			{
				wortenglisch = new JTextField();
				this.add(wortenglisch);
				wortenglisch.setBounds(237, 219, 182, 25);
			}
			{
				jengWort = new JLabel();
				this.add(jengWort);
				jengWort.setText("Englisches Wort");
				jengWort.setBounds(44, 224, 165, 16);
			}
			{
				hinzufuegen = new JButton();
				this.add(hinzufuegen);
				hinzufuegen.setText("Wort hinzuf\u00FCgen");
				hinzufuegen.setBounds(135, 277, 156, 23);
				hinzufuegen.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent evt) {
						hinzufuegenActionPerformed(evt);
					}
				});
			}
			{
				text = new JLabel();
				this.add(text);
				text.setBounds(93, 363, 492, 39);
				text.setFont(new java.awt.Font("Lucida Grande", 1, 13));
			}
			{
				ComboBoxModel kategorie_englischModel = new DefaultComboBoxModel();
				kategorie_englisch = new JComboBox();
				this.add(kategorie_englisch);
				kategorie_englisch.setModel(kategorie_englischModel);
				kategorie_englisch.setBounds(237, 136, 165, 23);
				kategorie_englisch.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent evt) {
						kategorie_englischActionPerformed(evt);
					}
				});
			}
			{
				jkat_englisch = new JLabel();
				this.add(jkat_englisch);
				jkat_englisch.setText("Kategorie auf Englisch");
				jkat_englisch.setBounds(44, 139, 161, 16);
			}
			{
				wort_entferne = new JButton();
				this.add(wort_entferne);
				wort_entferne.setText("Wort entfernen");
				wort_entferne.setBounds(542, 277, 171, 23);
				wort_entferne.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent evt) {
						wort_entferneActionPerformed(evt);
					}
				});
			}
			{
				Exit = new JButton();
				this.add(Exit);
				Exit.setText("Exit");
				Exit.setBounds(576, 446, 137, 57);
				Exit.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent evt) {
						ExitActionPerformed(evt);
					}
				});
			}
			{
				Hauptmenue = new JButton();
				this.add(Hauptmenue);
				Hauptmenue.setText("Hauptmen\u00FC");
				Hauptmenue.setBounds(116, 448, 121, 52);
				Hauptmenue.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent evt) {
						HauptmenueActionPerformed(evt);
					}
				});
			}
			{
				jSeparator1 = new JSeparator();
				this.add(jSeparator1);
				jSeparator1.setBounds(55, 323, 698, 12);
			}
			{
				jSeparator2 = new JSeparator();
				this.add(jSeparator2);
				jSeparator2.setBounds(55, 408, 698, 12);
			}
			{
				Meldungen = new JLabel();
				this.add(Meldungen);
				Meldungen.setText("Meldungen");
				Meldungen.setBounds(93, 335, 116, 16);
			}
			{
				TableModel VokabelnModel = new DefaultTableModel();
				Vokabeln = new JTable();
				this.add(Vokabeln);
				Vokabeln.setModel(VokabelnModel);
				Vokabeln.setBounds(499, 57, 254, 203);
			}
			{
				Anzeige = new JScrollPane();
				this.add(Anzeige);
				Anzeige.setBounds(455, 43, 308, 222);
				Anzeige.setViewportView(Vokabeln);
				//Vokabeln.setPreferredSize(new java.awt.Dimension(290, 222));
				//Vokabeln.setAutoResizeMode(Vokabeln.AUTO_RESIZE_OFF);
			}

			combosprachefuellen();
			combokategorieenglischfuellen();
			// jlist_fuellen();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	private void jlist_fuellen() throws SQLException {
		vokabelnentferne.removeAllItems();
		if (sprache.getSelectedItem() != null
				&& kategorie.getSelectedItem() != null
				&& kategorie_englisch.getSelectedItem() != null) {
			Vokabeln.setModel(Statements.jlist_fuellen(sprache
					.getSelectedItem().toString(), kategorie.getSelectedItem()
					.toString(), Wort.getText(), wortenglisch.getText(),
					kategorie_englisch.getSelectedItem().toString(), model,
					vokabelnentferne));

		}
	}

	private void combokategorieenglischfuellen() {
		kategorie_englisch.removeAllItems();
		Statements.combokategoriefuellen("EN", kategorie_englisch);

	}

	private void combokategoriefuellen() {
		kategorie.removeAllItems();
		Statements.combokategoriefuellen(sprache.getSelectedItem().toString(),
				kategorie);
	}

	private void combosprachefuellen() {
		sprache.removeAllItems();
		sprache = Statements.combosprachefuellen(sprache);
	}

	private void spracheActionPerformed(ActionEvent evt) {
		combokategoriefuellen();
		try {
			jlist_fuellen();
		} catch (Exception ex) {
			 System.err.println(ex.getMessage());
		}

	}

	private void kategorieActionPerformed(ActionEvent evt) {
		try {
			jlist_fuellen();
		} catch (Exception ex) {
			 System.err.println(ex.getMessage());
		}

	}

	private void hinzufuegenActionPerformed(ActionEvent evt) {
		
		if (!Wort.getText().isEmpty()) {
			if (!wortenglisch.getText().isEmpty()) {
				if (Statements.vokabeln_hinzufuegen(sprache.getSelectedItem()
						.toString(), kategorie.getSelectedItem().toString(),
						Wort.getText(), wortenglisch.getText(),
						kategorie_englisch.getSelectedItem().toString())) {
					Wort.setText("");
					wortenglisch.setText("");
					text.setText("Das Wort wurde hinzugef\u00FCgt.");
				} else {
					Wort.setText("");
					wortenglisch.setText("");
					text.setText("Das Wort existiert bereits.");
				}
			}
		} else{
			text.setText("Felder leer");
		}	
		
		try {
			jlist_fuellen();
		} catch (SQLException e) {
		
			e.printStackTrace();
		}
	}

	private void kategorie_englischActionPerformed(ActionEvent evt) {
		try {
			jlist_fuellen();
		} catch (Exception ex) {
			System.err.println(ex.getMessage());
		}

	}

	private void wort_entferneActionPerformed(ActionEvent evt) {
		if (vokabelnentferne.getItemAt(vokabelnentferne.getSelectedIndex()) != null && Vokabeln.getSelectedRow()!=0) {
			Statements.vokabelnentfernen(vokabelnentferne.getItemAt(
					Vokabeln.getSelectedRow()).toString());
			try {
				jlist_fuellen();
				Statements.putze();
				text.setText("Das Wort wurde entfernt.");
			} catch (Exception ex) {
				System.err.println(ex.getMessage());
			}
		}

	}

	private void ExitActionPerformed(ActionEvent evt) {
		System.exit(0);

	}

	private void HauptmenueActionPerformed(ActionEvent evt) {
		Start.getStart().getContentPane().removeAll();
		Hauptmenue H = new Hauptmenue();
		Start.getStart().add(H);
		Start.getStart().validate();

	}

}
